/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package InventariosAlmacenes.impl;

import InventariosAlmacenes.InventariosAlmacenesPackage;
import InventariosAlmacenes.Persona;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Persona</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getId <em>Id</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getApellidoMaterno <em>Apellido Materno</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getAplellidoPaterno <em>Aplellido Paterno</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getNombres <em>Nombres</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getDireccion <em>Direccion</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getTelefono1 <em>Telefono1</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getTelefono2 <em>Telefono2</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getEmail <em>Email</em>}</li>
 *   <li>{@link InventariosAlmacenes.impl.PersonaImpl#getUrlFotografia <em>Url Fotografia</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public abstract class PersonaImpl extends EObjectImpl implements Persona {
	/**
	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getId()
	 * @generated
	 * @ordered
	 */
	protected static final int ID_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getId()
	 * @generated
	 * @ordered
	 */
	protected int id = ID_EDEFAULT;

	/**
	 * The default value of the '{@link #getApellidoMaterno() <em>Apellido Materno</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getApellidoMaterno()
	 * @generated
	 * @ordered
	 */
	protected static final String APELLIDO_MATERNO_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getApellidoMaterno() <em>Apellido Materno</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getApellidoMaterno()
	 * @generated
	 * @ordered
	 */
	protected String apellidoMaterno = APELLIDO_MATERNO_EDEFAULT;

	/**
	 * The default value of the '{@link #getAplellidoPaterno() <em>Aplellido Paterno</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAplellidoPaterno()
	 * @generated
	 * @ordered
	 */
	protected static final String APLELLIDO_PATERNO_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getAplellidoPaterno() <em>Aplellido Paterno</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAplellidoPaterno()
	 * @generated
	 * @ordered
	 */
	protected String aplellidoPaterno = APLELLIDO_PATERNO_EDEFAULT;

	/**
	 * The default value of the '{@link #getNombres() <em>Nombres</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNombres()
	 * @generated
	 * @ordered
	 */
	protected static final String NOMBRES_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getNombres() <em>Nombres</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNombres()
	 * @generated
	 * @ordered
	 */
	protected String nombres = NOMBRES_EDEFAULT;

	/**
	 * The default value of the '{@link #getDireccion() <em>Direccion</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getDireccion()
	 * @generated
	 * @ordered
	 */
	protected static final String DIRECCION_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getDireccion() <em>Direccion</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getDireccion()
	 * @generated
	 * @ordered
	 */
	protected String direccion = DIRECCION_EDEFAULT;

	/**
	 * The default value of the '{@link #getTelefono1() <em>Telefono1</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTelefono1()
	 * @generated
	 * @ordered
	 */
	protected static final String TELEFONO1_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getTelefono1() <em>Telefono1</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTelefono1()
	 * @generated
	 * @ordered
	 */
	protected String telefono1 = TELEFONO1_EDEFAULT;

	/**
	 * The default value of the '{@link #getTelefono2() <em>Telefono2</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTelefono2()
	 * @generated
	 * @ordered
	 */
	protected static final String TELEFONO2_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getTelefono2() <em>Telefono2</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTelefono2()
	 * @generated
	 * @ordered
	 */
	protected String telefono2 = TELEFONO2_EDEFAULT;

	/**
	 * The default value of the '{@link #getEmail() <em>Email</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getEmail()
	 * @generated
	 * @ordered
	 */
	protected static final String EMAIL_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getEmail() <em>Email</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getEmail()
	 * @generated
	 * @ordered
	 */
	protected String email = EMAIL_EDEFAULT;

	/**
	 * The default value of the '{@link #getUrlFotografia() <em>Url Fotografia</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUrlFotografia()
	 * @generated
	 * @ordered
	 */
	protected static final String URL_FOTOGRAFIA_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getUrlFotografia() <em>Url Fotografia</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUrlFotografia()
	 * @generated
	 * @ordered
	 */
	protected String urlFotografia = URL_FOTOGRAFIA_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PersonaImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return InventariosAlmacenesPackage.Literals.PERSONA;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getId() {
		return id;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setId(int newId) {
		int oldId = id;
		id = newId;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__ID, oldId, id));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getApellidoMaterno() {
		return apellidoMaterno;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setApellidoMaterno(String newApellidoMaterno) {
		String oldApellidoMaterno = apellidoMaterno;
		apellidoMaterno = newApellidoMaterno;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__APELLIDO_MATERNO, oldApellidoMaterno, apellidoMaterno));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getAplellidoPaterno() {
		return aplellidoPaterno;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAplellidoPaterno(String newAplellidoPaterno) {
		String oldAplellidoPaterno = aplellidoPaterno;
		aplellidoPaterno = newAplellidoPaterno;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__APLELLIDO_PATERNO, oldAplellidoPaterno, aplellidoPaterno));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getNombres() {
		return nombres;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNombres(String newNombres) {
		String oldNombres = nombres;
		nombres = newNombres;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__NOMBRES, oldNombres, nombres));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getDireccion() {
		return direccion;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setDireccion(String newDireccion) {
		String oldDireccion = direccion;
		direccion = newDireccion;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__DIRECCION, oldDireccion, direccion));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getTelefono1() {
		return telefono1;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTelefono1(String newTelefono1) {
		String oldTelefono1 = telefono1;
		telefono1 = newTelefono1;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__TELEFONO1, oldTelefono1, telefono1));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getTelefono2() {
		return telefono2;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTelefono2(String newTelefono2) {
		String oldTelefono2 = telefono2;
		telefono2 = newTelefono2;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__TELEFONO2, oldTelefono2, telefono2));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setEmail(String newEmail) {
		String oldEmail = email;
		email = newEmail;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__EMAIL, oldEmail, email));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getUrlFotografia() {
		return urlFotografia;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setUrlFotografia(String newUrlFotografia) {
		String oldUrlFotografia = urlFotografia;
		urlFotografia = newUrlFotografia;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, InventariosAlmacenesPackage.PERSONA__URL_FOTOGRAFIA, oldUrlFotografia, urlFotografia));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case InventariosAlmacenesPackage.PERSONA__ID:
				return getId();
			case InventariosAlmacenesPackage.PERSONA__APELLIDO_MATERNO:
				return getApellidoMaterno();
			case InventariosAlmacenesPackage.PERSONA__APLELLIDO_PATERNO:
				return getAplellidoPaterno();
			case InventariosAlmacenesPackage.PERSONA__NOMBRES:
				return getNombres();
			case InventariosAlmacenesPackage.PERSONA__DIRECCION:
				return getDireccion();
			case InventariosAlmacenesPackage.PERSONA__TELEFONO1:
				return getTelefono1();
			case InventariosAlmacenesPackage.PERSONA__TELEFONO2:
				return getTelefono2();
			case InventariosAlmacenesPackage.PERSONA__EMAIL:
				return getEmail();
			case InventariosAlmacenesPackage.PERSONA__URL_FOTOGRAFIA:
				return getUrlFotografia();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case InventariosAlmacenesPackage.PERSONA__ID:
				setId((Integer)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__APELLIDO_MATERNO:
				setApellidoMaterno((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__APLELLIDO_PATERNO:
				setAplellidoPaterno((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__NOMBRES:
				setNombres((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__DIRECCION:
				setDireccion((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__TELEFONO1:
				setTelefono1((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__TELEFONO2:
				setTelefono2((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__EMAIL:
				setEmail((String)newValue);
				return;
			case InventariosAlmacenesPackage.PERSONA__URL_FOTOGRAFIA:
				setUrlFotografia((String)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case InventariosAlmacenesPackage.PERSONA__ID:
				setId(ID_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__APELLIDO_MATERNO:
				setApellidoMaterno(APELLIDO_MATERNO_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__APLELLIDO_PATERNO:
				setAplellidoPaterno(APLELLIDO_PATERNO_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__NOMBRES:
				setNombres(NOMBRES_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__DIRECCION:
				setDireccion(DIRECCION_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__TELEFONO1:
				setTelefono1(TELEFONO1_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__TELEFONO2:
				setTelefono2(TELEFONO2_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__EMAIL:
				setEmail(EMAIL_EDEFAULT);
				return;
			case InventariosAlmacenesPackage.PERSONA__URL_FOTOGRAFIA:
				setUrlFotografia(URL_FOTOGRAFIA_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case InventariosAlmacenesPackage.PERSONA__ID:
				return id != ID_EDEFAULT;
			case InventariosAlmacenesPackage.PERSONA__APELLIDO_MATERNO:
				return APELLIDO_MATERNO_EDEFAULT == null ? apellidoMaterno != null : !APELLIDO_MATERNO_EDEFAULT.equals(apellidoMaterno);
			case InventariosAlmacenesPackage.PERSONA__APLELLIDO_PATERNO:
				return APLELLIDO_PATERNO_EDEFAULT == null ? aplellidoPaterno != null : !APLELLIDO_PATERNO_EDEFAULT.equals(aplellidoPaterno);
			case InventariosAlmacenesPackage.PERSONA__NOMBRES:
				return NOMBRES_EDEFAULT == null ? nombres != null : !NOMBRES_EDEFAULT.equals(nombres);
			case InventariosAlmacenesPackage.PERSONA__DIRECCION:
				return DIRECCION_EDEFAULT == null ? direccion != null : !DIRECCION_EDEFAULT.equals(direccion);
			case InventariosAlmacenesPackage.PERSONA__TELEFONO1:
				return TELEFONO1_EDEFAULT == null ? telefono1 != null : !TELEFONO1_EDEFAULT.equals(telefono1);
			case InventariosAlmacenesPackage.PERSONA__TELEFONO2:
				return TELEFONO2_EDEFAULT == null ? telefono2 != null : !TELEFONO2_EDEFAULT.equals(telefono2);
			case InventariosAlmacenesPackage.PERSONA__EMAIL:
				return EMAIL_EDEFAULT == null ? email != null : !EMAIL_EDEFAULT.equals(email);
			case InventariosAlmacenesPackage.PERSONA__URL_FOTOGRAFIA:
				return URL_FOTOGRAFIA_EDEFAULT == null ? urlFotografia != null : !URL_FOTOGRAFIA_EDEFAULT.equals(urlFotografia);
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (id: ");
		result.append(id);
		result.append(", apellidoMaterno: ");
		result.append(apellidoMaterno);
		result.append(", aplellidoPaterno: ");
		result.append(aplellidoPaterno);
		result.append(", nombres: ");
		result.append(nombres);
		result.append(", direccion: ");
		result.append(direccion);
		result.append(", telefono1: ");
		result.append(telefono1);
		result.append(", telefono2: ");
		result.append(telefono2);
		result.append(", email: ");
		result.append(email);
		result.append(", urlFotografia: ");
		result.append(urlFotografia);
		result.append(')');
		return result.toString();
	}

} //PersonaImpl
